// pages/biz/goods-comments.js
const BizGoodsService = require('../../services/bizGoods');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    id: 0, // 商品ID
    comments: [], // 点评列表
    page: 1, // 当前页码
    pageSize: 10, // 每页数量
    hasMore: true, // 是否还有更多数据
    loading: false, // 是否正在加载
    refreshing: false, // 是否正在刷新
    total: 0 // 总数量
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (!options.id) {
      wx.showToast({ 
        title: '缺少商品ID', 
        icon: 'none' 
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
      return;
    }

    this.setData({ id: options.id });
    this.loadComments(true);
  },

  /**
   * 加载点评列表
   * @param {boolean} refresh 是否为刷新操作
   */
  async loadComments(refresh = false) {
    const { id, page, pageSize, loading, hasMore } = this.data;

    if (loading || (!hasMore && !refresh)) {
      return;
    }

    this.setData({ loading: true });

    try {
      const currentPage = refresh ? 1 : page;
      const result = await BizGoodsService.goodsPings({
        id: id,
        page: currentPage,
        pageSize: pageSize,
        showLoading: false
      });

      if (result.success && result.data) {
        const { list, total, has_more } = result.data;
        
        // 处理数据
        const processedList = list.map(item => ({
          ...item,
          star: item.star || 5, // 确保星级存在
          created_at: item.created_at || '',
          user: item.user || { nickname: '匿名用户', avatar: '' },
          images: item.images || []
        }));

        this.setData({
          comments: refresh ? processedList : [...this.data.comments, ...processedList],
          page: currentPage + 1,
          hasMore: has_more || false,
          total: total || 0,
          loading: false,
          refreshing: false
        });

        // 停止下拉刷新
        if (refresh) {
          wx.stopPullDownRefresh();
        }
      } else {
        wx.showToast({
          title: result.message || '加载失败',
          icon: 'none'
        });
        this.setData({ 
          loading: false, 
          refreshing: false 
        });
      }
    } catch (error) {
      console.error('获取商品点评列表失败:', error);
      wx.showToast({
        title: '网络错误',
        icon: 'none'
      });
      this.setData({ 
        loading: false, 
        refreshing: false 
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({ refreshing: true });
    this.loadComments(true);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (this.data.hasMore && !this.data.loading) {
      this.loadComments(false);
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '商品点评',
      path: `/pages/biz/goods-comments?id=${this.data.id}`
    };
  },

  /**
   * 预览图片
   */
  previewImage(e) {
    const { current, urls } = e.currentTarget.dataset;
    wx.previewImage({
      current: current,
      urls: urls
    });
  }
})